// 引入pinia
import { ElMessage } from 'element-plus';
import { userLogin } from '@/api/userApi';
import { defineStore } from 'pinia';

// 创建userStore
// 创建时需要遵循命名规范 useXXXStore
export const useUserStore = defineStore({
    persist: {
        enabled: true, // 开启持久化
        Storage: localStorage, // 使用localStorage存储
        // key: "UserInfo", // 持久化的key
        // paths: ['userInfo'], // 持久化的数据
    },
    // 定义userStore的名字
    id: 'userStore',
    // 定义state
    state: () => ({
        // 用户信息
        userInfo: {
            username: '',
            token: '',
        },
        // 用户登录状态
        isLogin: false,
    }),
    // 定义getter
    getters: {
        // 获取用户信息
        getUserInfo() {
            return this.userInfo;
        },
        //获取用户登录状态
        getLoginStatus() {
            return this.isLogin;
        }
    },
    // 定义setter
    // setters: {
    //     // 设置用户信息
    //     setUserInfo(userInfo) {
    //         // userInfo.token = 'Bearer ' + userInfo.token;
    //         this.userInfo = userInfo;
    //     }
    // },
    // 定义action
    actions: {
        // 登录方法
        async login(userData) {
            // console.log('store接收到信息')
            // console.log(userData)
            // await 会等待异步函数执行完毕
            const res = await userLogin(userData);
            res.token = 'Bearer ' + res.token;
            this.userInfo = res;
            this.isLogin = true;
            ElMessage.success('登录成功');
            console.log(res);
        },
        // 退出方法
        logout() {
            this.userInfo = {};
            this.isLogin = false;
            ElMessage.success('退出成功');
            window.location.reload();
        }
    },
})
export default useUserStore;